package com.zsy.springframework.beans.facotry.jiekou.two;

import com.zsy.springframework.beans.facotry.config.PropertyValues;
import com.zsy.springframework.beans.facotry.exception.BeansException;
import com.zsy.springframework.beans.facotry.jiekou.one.BeanPostProcessor;

public interface InstantiationAwareBeanPostProcessor extends BeanPostProcessor {
    Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) throws BeansException;

    PropertyValues postProcessPropertyValues(PropertyValues pvs, Object bean, String beanName) throws BeansException;


//    default Object getEarlyBeanReference(Object bean, String beanName) {
//        return bean;
//    }
//    boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException;

}
